package secondStage.part6.Lambda表达式.练习1;

/**
 * @ClassName: [LambdaDemo]
 * @Description: Lambda表达式练习
 * @Author: [黄劲松]
 * @CreateDate: [2021-04-07]
 * @Version: [v1.0]
 */
//组成Lambda表达式的三要素:形式参数，箭头,代码块
/*1.3 Lambda表达式的标准格式
Lambda表达式的格式
   ●格式: (形式参数)-> {代码块}
   ●形式参数:如果有多个参数，参数之间用逗号隔开;如果没有参数,留空即可
   ●->：由英文中画线和大于符号组成，固定写法。代表指向动作
   ●代码块: 是我们具体要做的事情，也就是以前我们写的方法体内容

1.4 Lambda表达式的练习
Lambda表达式的使用前提
    ●有一个接口
    ●接口中有且仅有一个抽象方法
练习1:
    ●定义一个接口(Eatable),面定义-个抽象方法: void eat0;
    ●定义一个测试类(EatableDemo), 在测试类中提供两个方法
        一个方法是: useEatable(Eatable e)
        一个方法是主方法，在主方法中调用useEatable方法
*/
public class LambdaDemo1 {
    public static void main(String[] args) {
        //在主方法中调用useEatable方法
        //实现类的方式实现需求
        EatableImpl e = new EatableImpl();
        userEatable(e);
        //匿名内部类
        userEatable(new Eatable() {
            @Override
            public void eat() {
                System.out.println("一天一个水果，医生远离我1");
            }
        });
        //Lambda表达式
        userEatable(()->{
            System.out.println("一天一个水果，医生远离我2");
        });
    }
    private static void userEatable(Eatable e){
        e.eat();
    }
}
